home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-08-27 | 1.2 KB | 87 lines | [TEXT/MPS ] |
- include 'sysequ.a'
- include 'traps.a'
- proc
- export InitJGNE, FinishJGNE
-
- ; procedure InitJGNE(addr:ProcPtr; globals:ptr);
- ; { procedure Addr(var er:EventRecord; var retval:integer; globals:ptr); }
- InitJGNE
- lea data,a1
- move.l 8(sp),(a1)+
- move.l JGNEFilter,(a1)+
- move.l 4(sp),(a1)+
- clr.w (a1)+
- move.l #6,d0
- _NewPtr ,sys
- lea sysptr,a1
- move.l a0,(a1)
-
- move.w #$4EF9,(a0)
- lea doJGNE,a1
- move.l a1,2(a0)
- lea JGNEFilter,a1
- move.l a0,(a1)
-
- _FlushDataCache
- _FlushInstructionCache
-
- move.l (sp)+,a0
- add.l #8,sp
- jmp (a0)
-
- FinishJGNE
- ; procedure Finish;
- move.l sysptr,a0
- move.l oldaddr,a1
- move.l a1,2(a0)
- _FlushDataCache
- _FlushInstructionCache
- rts
-
- doJGNEStack record 0
- savea1 ds.l 1
- Return ds.l 1
- retval ds.w 1
- endr
-
- with doJGNEStack
-
- ; A1 = event register ptr.
- ; return A1 and D0.
- doJGNE
- move.l a1,-(sp)
-
- lea injgne,a0
- tst.w (a0)
- bne.s notme
-
- move.w #1,(a0)
-
- lea retval(sp),a0
- move.l a1,-(sp)
- move.l a0,-(sp)
- move.l globals,-(sp)
- move.l newaddr,a0
- jsr (a0)
-
- lea injgne,a0
- clr.w (a0)
- move.w retval(sp),d0
- notme
- move.l (sp)+,a1
- move.l oldaddr,a0
- jmp (a0)
-
- data
- newaddr ds.l 1
- oldaddr ds.l 1
- globals ds.l 1
- injgne ds.w 1
- sysptr ds.l 1
-
- endp
-
- end
-
- asm -wb "{active}"
-